The invention relates to a data-processing arrangement for processing different types of data. The invention may be applied in, for example, a video-processing arrangement. A video-processing arrangement generally processes luminance (Y) and chrominance (UV) pixels, which are different types of data. The pixels that are to be processed may also differ in the sense that they originate from different pictures.
A data-processing arrangement generally comprises an interface via which it receives data to be processed. Generally, the interface will temporarily store the data to be processed. Such storage may be necessary because, for example, the data-processing arrangement cannot always immediately process a data that it receives.
The interface may store a data which it receives in one or another memory section depending on the type of the data. For example, let it be assumed that the interface receives video comprising luminance and chrominance pixels. The interface may then have a memory section in which it stores luminance pixels and another memory section in which it stores chrominance pixels. The video to be processed may originate from different pictures because, for example, the processing includes a picture-in-picture (PIP) feature. In that case, there may be different groups of memory sections, each group of memory sections belonging to a different picture.
It is an object of the invention to allow cost-efficiency.
According to the invention, a data-processing arrangement, which is capable of processing different types of data, comprises a controller for executing a set of program items. Each program item causes the data-processing arrangement to fetch and process a block of data of a certain type. An interface temporarily stores a block of data in one of a plurality of memory sections. The memory section in which the block of data is stored is defined by the position that the program item for the block of data has within in the set of program items.
The invention takes the following aspects into consideration. A data-processing arrangement may have to process various composites of data. One composite may comprise a relatively high percentage of certain type of data whereas another composite may comprise a relatively low percentage of that data. For example, video data may comprise relatively many chrominance pixels, or relatively few, depending on the video format.
A data-processing arrangement will generally receive a composite of data in the form of a stream that is a time multiplex of different types of data. The stream may comprise a relatively high percentage of a certain type of data during one time interval whereas it comprises a relatively low percentage of that data during an other time interval.
According to the background art, the interface temporarily stores data in one or another memory section depending on the type of data. That is, each type of data has its own memory section. A memory section should be sufficiently large so that it can temporarily store the type of data which it has been assigned to store. In view of what has been explained hereinbefore, the memory section may need to have a relatively large size for one composite of data whereas it can have a relatively small size for another composite. Moreover, it may occur that a memory section needs to store relatively much data during a certain time interval, while another memory section has to store relatively few data, whereas the inverse applies in another time interval.
There are basically two solutions to cope with these aspects that are related to the background art. One solution is that each memory section has a relatively large size such that it can always store the type of data which it has been assigned to store. This solution is relatively expensive because it requires much storage capacity which, on average, will not be used efficiently. The other solution is to dynamically divide a memory into various sections, each memory section belonging to a certain type of data. A memory section for a certain type of data is made larger or smaller depending on the storage capacity that is required for that type of data. This solution is also relatively expensive because it requires a memory-management system that is relatively complicated in terms of hardware or software, or both.
According to the invention, a controller executes a set of program items, a program item causing the data-processing arrangement to fetch and process a block of data of a certain type. The interface temporarily stores the block of data in one or another memory section depending on the position that the program item has within the set of program items.
The controller will execute the program items in accordance with a pre-defined scheme. Since, according to the invention, a program-item causes a block of data to be temporarily stored in one or another memory section depending on the position that the program item has within the set of program items, the latter defines a scheme in accordance with which blocks of data are temporarily stored in memory sections of an interface. Consequently, there is no need for a complicated memory-management system for managing storage of data in the interface. This contributes to cost-efficiency.
The invention also allows cost-efficiency for the following reason. The data-processing arrangement will successively process blocks of data. This implies that the interface will successively apply blocks of data to one or more processing circuits. According to the invention, a program items causes a block of data to be processed and the position of the program item defines where the block of data is stored in the interface. Consequently, at any given instant, it is immediately clear where a particular block of data, which needs to be processed at that instant, is stored in the interface. Thus, the hardware or software, or both, which causes blocks of data to be read from the interface so that they are processed, can be relatively simple.
Furthermore, the invention allows an efficient use of the memory sections that are present in the interface. According to the invention, a program item causes the data-processing arrangement to fetch and process a certain block of data. This implies that there is a data-fetch delay. The data-fetch delay is the difference between the instant when a data block is written into a memory section and the instant when the data block is read because it will enter a processing pipeline. Preferably, the interface is provided with just enough memory sections to bridge the data-fetch delay, not more and not less. In that case, the memory sections will be filled with data most of the time and, consequently, they will be used efficiently.
The memory sections can have a uniform size. In many applications, it will be possible to suitably divide up the data to be processed into blocks so that most blocks will have a size that corresponds with the size of the memory sections. This further contributes to an efficient use of the memory sections.